#ifndef alvopp_hh__included__
#define alvopp_hh__included__

//#include <iostream>
//~ #include <list>

#ifdef __LINUX__
#include "../../alvo.hh"
#else
#include "../../alvo.hpp"
#endif

/*template <typename E>
class Back {
public:
	E*bk;
	E&fw;
	Back (E*abk, E&afw):bk(abk),fw(afw){}
};

template <typename E>
class Link {
public:
	E*bk;
	Link<E> *fw;
	Link(E*abk, Link<E> *afw):bk(abk),fw(afw){}
};*/


class AlvoPP {
	//void*top; //ALVO*
	//Back<ALVO> *back;
//	vector<A_CONT_TAG*> stack;  //XX1123
	class AlvoPP_Private *prv;
	//~ DUMMYstack stack;
	A_CONT_TAG *cur;
	ALVO_C C; // TODO
	ALVO_X X; // TODO
	char nn[256];//,*pnn;
public:
	void *Result;
	A_LIST s;
public:
	void print();
public:
	AlvoPP();
	virtual ~AlvoPP() {;} //TODO

	//~ virtual ~AlvoPP() {print();}
	void sg(); void sl(); void sz(); 
	void eg(); void el(); void ez(); 
	void symbol();
	void numeric();
	void eval();
	void stringular();
};

#endif // alvopp_hh__included__
